Method and apparatus for routing data

ABSTRACT

A method of operating a wireless network with a base station and a plurality of outstations comprises transmitting a broadcast signal from the base station and in response to reception of the broadcast signal, transmitting an acknowledgement signal from an outstation. At least some of the outstations serve to relay signals for other outstations. An outstation relaying an acknowledgement signal appends to the signal an identifier identifying the relaying outstation. The base station, upon receipt of an acknowledgement signal, stores any appended identifier(s) for later use in routing signals to the outstation which originated that acknowledgement signal.

This application is the US national phase of international applicationPCT/GB021/02573 filed 30 May 2002 which designated the U.S.

TECHNICAL FIELD

The present invention relates to methods of, and apparatus for, routingthrough a network, and has particular application in routing throughwireless networks.

BACKGROUND TO THE INVENTION AND PRIOR ART

Wireless network technology is maturing, and base stations, whichreceive, buffer, and transmit data between a wireless network and afixed network, are increasingly being installed in offices, homes andpublic places such as coffee shops, restaurants and airports.

With traditional wireless technology, only devices that are within rangeof a base station can send data to, and receive data from, the fixednetwork. Given the potential demand for wireless connections—in terms ofvolume and location—there has been significant motivation to developcapabilities that effectively extend the range of the base station.

One known approach creates a path between out-of-range devices and thebase station by setting up peer-to-peer communications between wirelessdevices in the path. In this scenario, the wireless devices in the pathessentially act as relays between the out-of-range device and the basestation. For more information, the reader is referred to documentsprepared by the mobile ad-hoc networking group (MANET), which is aworking group within the Institute of the Internet Engineering TaskForce (IETF), and can be contacted via IETF Secretariat, c/o Corporationfor National Research Initiatives, 1895 Preston White Drive, Suite 100,Reston, Va. 20191-5434, USA. An example of such documents can be foundat the following http URL address:www.ietf.org/html.charters/manet-charter.html.

In this approach, some means of establishing routes via the path ofrelay devices is required to reach the out-of-range devices. Given thedifferences between fixed and mobile networks, conventional routingmethods, which are suitable for fixed networks, are unsuitable forrouting through relay devices.

SUMMARY OF THE INVENTION

According to the invention there is provided a method of operating awireless network with a base station and a plurality of outstations,comprising transmitting a broadcast signal from the base station, and,in response to reception of the broadcast signal, transmitting anacknowledgement signal from an outstation. In the method at least someof the outstations serve for relaying of signals for other outstations,an outstation relaying an acknowledgement signal appends to the signalan identifier identifying the relaying outstation, and the base station,upon receipt of an acknowledgement signal, stores any appendedidentifier(s) for later use in routing signals to the outstation whichoriginated that acknowledgement signal.

According to a second aspect of the invention there is provided a methodof identifying a route to a wireless device that is in range of at leastone other wireless device located within a wireless network, thewireless network comprising a base station operable to communicate withdevices in the wireless network. The method comprises the steps of

-   -   a. sending a broadcast signal into the wireless network,    -   b. receiving an acknowledgement signal generated by one of the        wireless devices in response to receipt of the broadcast signal,        and    -   c. storing identifiers representative of the, or each, wireless        device passed through by the acknowledgement signal,        wherein the stored identifiers collectively define a route        between the base station and whichever device generated the        acknowledgement signal.

Preferably a plurality of broadcast signals is sent, each beingseparated by a temporal interval. The method can also include a step ofadapting the temporal interval in accordance with changes in thewireless network

According to a third aspect of the invention there is provided a methodof routing data to a wireless device for which a route has beenidentified by the afore-described method steps. The routing methodcomprises the steps of

-   -   a. identifying which of the wireless devices in the wireless        network the data is destined for,    -   b. retrieving stored identifiers constituting a route between        the base station and the identified wireless device,    -   c. appending the stored identifiers to the data,    -   d. sending the data to a device corresponding to a first        identifier in the route.

According to a fourth aspect of the invention there is provided a methodof identifying a wireless device, for use in identifying a route to saiddevice, wherein the wireless device is in range of at least one otherwireless device located within a wireless network, the wireless networkcomprising a base station operable to communicate with devices in thewireless network. The method comprises the steps of

-   -   i. receiving a signal,    -   ii. if the signal is a broadcast signal, generating an        acknowledgement signal in response to receipt of the broadcast        signal,    -   iii. appending an identifier representative of the wireless        device to the acknowledgement signal, and    -   iv. sending the acknowledgement signal to the base station.

Preferably step (iv) comprises the step of selecting a neighbouringdevice in accordance with a routing table, which routing table comprisespreference values for sending data via neighbouring devices. Inembodiments of the invention, a preference value corresponding to aneighbouring device is modified, at least in part, in dependence on timetaken for signals to reach the device via that neighbouring device.

Conveniently, if the signal received at step (ii) is an acknowledgementsignal, the acknowledgement signal is modified by adding an identifierrepresentative of the wireless device thereto, the acknowledgementsignal thereby storing identifiers representative of devices thatcollectively define a route between the base station and whicheverdevice generated the acknowledgement signal.

Thus by the time the acknowledgement signal has arrived at the basestation the signal contains identifiers indicative of a valid route frombase station to whichever device initiated the acknowledgement signal.

According to the invention there is provided apparatus to effect themethods described above.

In the following description, the terms “wireless device” and “device”are used interchangeably.

BRIEF DESCRIPTION OF THE DRAWINGS

Further aspects and advantages of the present invention will be apparentfrom the following description of preferred embodiments of theinvention, which are given by way of example only, and by reference tothe accompanying drawings, wherein like reference numerals refer to likeparts, and in which:

FIG. 1 is a schematic diagram of a wireless network, within whichembodiments of the invention operate;

FIG. 2 is a schematic diagram of components of a base station and adevice comprising part of the wireless network of FIG. 1;

FIGS. 3 a and 3 b constitute a flow diagram showing a method ofestablishing a route to wireless devices in a wireless network accordingto an embodiment of the invention;

FIG. 4 a is a schematic diagram illustrating aspects of the method ofFIG. 3;

FIG. 4 b is a schematic diagram illustrating further aspects of themethod of FIG. 3;

FIG. 5 a is a schematic diagram showing constituent parts of anadvertisement packet generated according to an embodiment of theinvention;

FIG. 5 b is a schematic diagram showing constituent parts of anacknowledgement packet generated according to the an embodiment ofinvention;

FIG. 5 c is a schematic diagram showing constituent parts of an updatedacknowledgement packet generated according to an embodiment of theinvention;

FIGS. 6 a and 6 b constitute a flow diagram showing a method of routinga packet destined for a wireless device in the wireless network,according to an embodiment of the invention;

FIG. 7 is a schematic diagram illustrating aspects of the method of FIG.3;

FIG. 8 is a schematic diagram showing constituent parts of a modifiedacknowledgement packet generated according to an embodiment of theinvention;

FIG. 9 is a flow diagram showing a method of modifying the frequencywith which advertisement packets are issued by the base station,according to an embodiment of the invention; and

FIG. 10 is a graph showing the effect of the method of FIG. 9 on theadvertising frequency.

Overview of Environment for Embodiments of the Invention

FIG. 1 shows a wireless network 100, including nodes 101 that arerepresentative of a base station 103 and a plurality of devices 105 a,105 b, 105 c, 105 d. The base station 103 connects to a wired network110 from a fixed location using standard cabling. Typically, the basestation 103 receives, buffers, and transmits data between the wirelessnetwork 100 and a wired network 110 infrastructure. A single basestation 103 can directly or indirectly support a group of devices 105 a,105 b, 105 c, 105 d (referred to generally as 105, or 105 i, below).

The network 100 could be a wireless Local Area Network, in which casethe nodes 101 intercommunicate in accordance with the collection of802.11 Institute of Electrical Engineers (IEEE) standards.

The 802.11 IEEE standards include three specifications, 802.11, 802.11aand 802.11b. For the 802.11 and 802.11b specifications, data istransferred at frequencies in the 2.4 GHz region of the radio spectrum.Data rates are generally 1 or 2 Mbps for 802.11, and 5.5 Mbps or 11 Mbpsfor 802.11b, although rates up to about 20 Mbps are realizable with802.11b.

The 802.11a specification applies to wireless ATM systems and operatesat radio frequencies between 5 GHz and 6 GHz. With a modulation schemeknown as OFDM (orthogonal frequency-division multiplexing) data speedsas high as 54 Mbps are possible, but most commonly, communications takesplace at 6 Mbps, 12 Mbps, or 24 Mbps. More information is available fromthe Institute of Electrical Engineers Standards Association, and detailsof this standard are documented at the following http URL address:standards.ieee.org/cata- log/IEEE802.11.html.

The network 100 could be any type of short-range communications network,such as a 3-G network, a bluetooth network, or a GSM network.

The devices 105 may include palmtop computers, desktop computers,hand-held computers, simple devices operable to receive and transmit SMSmessages and mobile phones, among others. The devices 105 have wirelessnetwork adapters, such as wireless LAN adapters, which are implementedas PC cards in notebook or palmtop computers, as cards in desktopcomputers, or integrated within hand-held computers. Wireless networkadapters provide an interface between a device network operating system(NOS) and the airwaves via an antenna.

Devices 105 can move around and communications will continue, unbroken,provided the devices 105 can directly connect to a base station. Inorder to extend the capability of the wireless network 100infrastructure, wireless capabilities of other wireless devices in theneighbourhood can be exploited by using one or more devices to relaymessages to the base station. Embodiments of the present invention areconcerned with methods of routing data via these relay devices.

In a fixed network 110, in particular a packet switched network, packetsare routed through the network 110 by means of routing tables, which arestored on routers R in the network 110 and list “next hop” devices as afunction of destination address. In operation, a router examines thedestination address of an incoming packet, and, by consulting therouting table, identifies which “next hop” device to forward the packetto. This method is well suited to fixed networks 110, where devices aretypically static, and the frequency at which routing tables need to beupdated, to accommodate changes in the network, is manageable.

Wireless networks, however, are designed to provide users with access toinformation from any location. This means that such users, andimportantly their devices, may only be in the vicinity of a base station103 for a short, and unpredictable, period of time. It is thereforeimpractical to maintain routes using the routing table method describedabove, as the frequency required to update the routing table in order tocapture these changes, is unacceptably high.

Embodiments of the invention are therefore also concerned with providingroute identification and delivery methods and apparatus that are suitedto the dynamic nature of wireless networks.

Overview of Embodiments of the Invention

Essentially the base station 103 advertises its presence by sendingadvertisement packets into the wireless network 100 at intervals. Eachdevice 105 i (where i identifies a specific device) maintains a routingtable to the base station 103, which details active next hop devices enroute to the base station 103. Upon receipt of an advertisement packet,devices 105 i send an acknowledgement packet back to the base stationusing the routing tables to identify a suitable next hop device. Theroute taken by acknowledgement packets thus only involves devices thatare active in the network 100.

Each time the acknowledgement packet passes through a device 105 i (onits way to the base station 103), the device 105 i appends its addressto the acknowledgement packet. Thus, by the time the acknowledgementpacket has arrived at the base station 103 the packet contains a validroute from base station 103 to whichever device initiated theacknowledgement packet. The base station 103 saves this routeinformation and stores it as a valid route for whichever device 105created the acknowledgement packet.

When packets arrive from the fixed network 110, destined for one of thedevices 105 d, say, the base station 103 identifies which of the routescorresponds to the destined device 105 d, appends the identified routeto the incoming packet, and sends the packet into the wireless network100.

An advantage of embodiments of the invention is that routeidentification is self-organising and dynamic, as it is based onadvertisement and acknowledgement packets issued by the base station 103and active devices 105 respectively, which, by definition, can onlypropagate through active devices, and are issued periodically.

In terms of resource usage, an advantage of embodiments of the inventionis that device requirements can be reduced, as most of the routeprocessing is performed by the base station.

Additionally, the routing tables include weighted preferences thatimplicitly include information about hop-length and network congestion,so that the advertising mechanism tends to create routes that have asmall number of hops (because of weighted preferences in routingtables). Thus the route information appended to packets originating fromthe fixed network is quite short.

One of the concepts underlying embodiments of the invention is thatdevices alert the base station when they want to receive data i.e. “dataon demand”. Thus a device that wants to be available for calls/data tobe routed to it generates acknowledgement packets. Conversely a devicecan disallow any calls/data to be routed to it by not generatingacknowledgement packets (as this has the effect that the base stationhas no way of knowing how to route data to such devices).

Other embodiments of the invention modify the frequency with which thebase station 103 issues advertisement packets, or the temporal intervalthat passes between broadcast events (broadcast of advertisementpackets), in dependence on devices connecting and disconnecting to thewireless network. These embodiments include a mechanism for determiningchanges in the wireless environment, for quantifying the change, and formodifying this temporal interval in accordance therewith.

Essentially, these further embodiments optimise the functionality of thebase station in accordance with an objective of minimising networktraffic.

DESCRIPTION OF THE EMBODIMENTS

Referring to FIG. 2, a first embodiment of the invention will now bediscussed in more detail.

FIG. 2 shows a base station 103, which can be a wireless router,comprising a central processing unit (CPU) 201, a memory unit 203, aninput/output device 205 for connecting the base station 103 to the fixednetwork 110, storage 207, a radio transmitter and receiver 209, and asuite of operating system programs 219, which control and co-ordinatelow level operation of the base station 103. Such a configuration iswell known in the art. The storage 207 also stores programs 211, 213,215 that are processable by the CPU 201.

These programs include a generating program 211 for generatingadvertisement packets, a decoding program 213 for decodingacknowledgment packets, and a routing program 215 for routing incomingdata packets to an appropriate wireless device 105.

The decoding program 213 enables the base station 103 to store routes toeach (active) device 105 on the wireless network 100, and the routingprogram 215 enables the base station 103 to identify, on the basis ofthe destination address of incoming data packet(s), one of the storedroutes, and to append the identified route to the incoming datapacket(s).

FIG. 2 also shows an example of a wireless device 105, which, as statedabove, can be a palmtop computer. A wireless device 105 typicallycomprises at least a processing unit 221, a memory store 223 and awireless-LAN adapter 225 (as stated above). The basic configuration of aparticular wireless device 105 varies in accordance with device type,and is well known to those in the art. In order to function inaccordance with embodiments of the invention, the memory store 223stores an updating program 231 for updating a routing table detailing“next hop” devices to the base station 103, an acknowledgement program233 for sending acknowledgement packets to the base station 103, and aforwarding program 235 for forwarding packets on to other devices in thewireless network 100. These programs 231, 233, 235 can be processed bythe processing unit 221.

The updating program 231 enables a device 105 a to select an active“next hop” device for transmission of data to the base station 103, andthe acknowledgement program 233 enables the device 105 a to generateacknowledgement packets in response to advertisement packets received bythe device 105 a. In addition, the acknowledgement program 233 enablesthe device 105 a to append an identifier representative of the device105 a to an acknowledgement packet, which is en route for the basestation 103, and which has been generated by another device upstream ofthat device 105 a (e.g. referring to

The operation of the base station 103 and devices 105 according to anembodiment of the invention will now be described with reference to theflowchart shown in FIGS. 3 a and 3 b and the schematic diagrams shown inFIGS. 4 a and 4 b. FIGS. 3 a and 3 b show steps carried out by bothdevices 105 and the base station 103 when determining a route to awireless device.

At step S 3.1 the base station 103 releases an advertisement packet AD,which is flooded through the network 100, as shown in FIG. 4 a. Thisstep is performed at regular, configurable intervals, by the generatingprogram 211, which creates an advertisement packet AD and sends it tothe radio transmitter 209.

Referring to FIG. 5 a, the advertisement packet AD comprises anidentifier 501 of the base station and a unique generating eventidentifier 503, which is a form of time stamp, indicating a time ofcreation of the packet AD. The advertisement packets AD are small andhave little impact on network bandwidth.

At step S 3.2 the advertisement packets AD are received at devices 105a, 105 b. For each device the advertisement packet AD is passed, via aninterface, to the acknowledgement program 233.

At step S 3.3 acknowledgement program 233 firstly determines the type ofpacket that has been received. There are several ways of doing this, oneof which involves packets carrying an identifier of packet type (forexample, a field in a packet header could specify a type of packet) anddepends on nodes 101 having a program that decodes the type identifier.

In the present embodiment, packet headers specify a packet typeidentifier 500, as can be seen in FIGS. 5 a, 5 b and 5 c, and theacknowledgement program 233 and decoding program 213 running on devices105 and base station 103 respectively read the packet header in order toidentify packet type.

The packet identifier 500 may include one of the following types:

PACKET TYPE ACTION Advert (AD) Broadcast packet to all neighbouringdevices, send acknowledgement packet back to base stationAcknowledgement Append device ID to packet and forward to (ACK)preferred next hop device (described in more detail later) Downstreamdata Read route from packet and send to next hop neighbour in the route(described in more detail later) Upstream data Forward to preferred nexthop device

Other packet types are possible.

Having established that the received packet is an advertisement typepacket AD, the acknowledgement program 233 passes the advertisement typepacket AD to the updating program 231 in order to update the routingtable of the device 105 a. As stated above, each device maintains arouting table detailing “next hop” devices en route for the base station103. For example, referring to FIG. 4 a, the routing table of device 105d, which is maintained by the updating program 231, contains entries fordevices 105 a and 105 c. The updating program 231 receivesidentification of its “next hop” neighbours from, e.g. a link layerprotocol, which establishes neighbourhood information through simplesignalling, as is known in the art.

As part of maintaining the routing table, the updating program 231monitors the number and frequency of advertisement type packets that itreceives from its “next hop” neighbours. This information is used by theupdating program 231 to determine a preference rating, in the form of aweighting, for routing packets via these next hop devices.

Considering device 105 a, at step S 3.4 the updating program 231modifies weights in the routing table according to the followingequations:

$\begin{matrix}{{r_{s,m}^{i}\left( {t + 1} \right)} = \frac{{r_{s,m}^{i}(t)} + {\delta\; r}}{1 + {\delta\; r}}} & (1) \\{{r_{s,l}^{i}\left( {t + 1} \right)} = \frac{r_{s,l}^{i}(t)}{1 + {\delta\; r}}} & (2) \\{{\delta\; r} = {\frac{\max - \min}{age} + \min}} & (3)\end{matrix}$where

r is the weight calculated for a next hop device;

i represents the device at which a packet has been received;

s represents the source device of the packet (the base station 103);

m represents the device from which the packet was received (one of theneighbouring next hop devices);

l represents one of the other next hop devices (ones from which thepacket was not received);

δr is a configurable reinforcement parameter;

min, max represent a minimum and maximum value respectively forreinforcement parameter;

age represents age of a the packet; and

t and (t+1) indicate (discrete) time.

Initially, a neighbouring device, from which a packet is received, isassigned a weight of 1.0. Thereafter weights are modified in accordancewith Equations (1)-(3).

Equation (1) specifies the new reinforced weight associated with nexthop device m. The weights in the routing table always sum to 1 and thusweights associated with other neighbours must be modified to reflect thechange. Equation (2) specifies the amount by which the weights for allother neighbours are reduced. Equation (3) specifies an examplereinforcement parameter that is used in Equations (1) and (2).

The reinforcement parameter δr modifies the amount by which the weightsare adjusted in Equations (1) and (2), and ranges between a maximumvalue (max) and a minimum value (min). The precise value is determinedby the age of packets, as can be determined from the time stampidentifier 503 in the advertisement packets AD. Alternativereinforcement parameters are possible.

As can be seen from Equations (1)-(3), the rate at which packetspropagate through a network affects routing tables. If packets aredelayed (each device 105 can maintain a data queue (not shown), whichholds data that needs to be either forwarded or processed by the device105), they will have less influence on a routing table than those thathave travelled via a less congested route, because fewer of them may bereceived within a given time frame and because older packets have alesser effect on the weights within the routing table.

Having updated the weights as described above, the updating program 231determines whether an advertisement type packet AD bearing this timestamp 503 has previously been received from the base station 103. Ifsuch a packet has already been received, the advertisement packet isdiscarded, step S 3.5.

However, if this is the first time an advertisement packet AD bearingthis time stamp 503 has been received, the acknowledgement program 233broadcasts the packet AD to all neighbouring devices, at step S 3.6,which in this case is device 105 d, and generates (and sends out) anacknowledgement packet ACK.

For the purposes of the present exemplifying example, theacknowledgement packet ACK generated by device 105 a is not discussedfurther (acknowledgement packets ACK are discussed below, with referenceto device 105 d).

The advertisement packet AD broadcast by 105 a at step S 3.6 to device105 d is received and handled by the updating and acknowledgementprograms 231, 233 respectively on device 105 d, as described above atsteps S 3.2-S 3.6. Assuming that this is the first time an advertisementpacket AD bearing this time stamp 503 has been received at device 105 d,the acknowledgement program 233 broadcasts the packet AD to allneighbouring devices, which in this case is devices 105 a and 105 c, andthen generates an acknowledgement packet ACK (step S 3.6)

An example acknowledgement packet ACK is shown in FIG. 5 b, comprisingan identifier 511 representative of whichever device first created theacknowledgement packet ACK (here device 105 d), an identifier 513representative of the ad event 503 to which the ACK is responding, andthe route 515 taken by the packet ACK (here device 105 d, as this is thestart of the route 515). The route part 515 is modified as the packetACK moves through the network.

At step S 3.7.1, the acknowledgement program 233 selects a next hopdevice (here either 105 a or 105 c) to send the acknowledgement packetACK to. This comprises consulting the routing table and selectingwhichever device has the highest weighting. Referring to FIG. 4 a,device 105 a has a higher weighting, so device 105 a is selected, andthe acknowledgement packet ACK is sent from device 105 d to device 105a, as shown in FIG. 4 b.

At step S 3.7.2 the acknowledgement program 233 inserts an identifierthat is representative of the device 105 d to the route part 515 of theacknowledgement packet ACK generated at step S 3.6, and at step S 3.7.3the acknowledgement packet ACK is sent to the whichever next hop devicewas selected at step S 3.7.1

As can be seen from the logic step S 3.7.4, depending on the type ofnode 101 selected at step S 3.7.1 (i.e. either device 105 or basestation 103), the sequence continues to step S 3.8 or step S 3.9.1. Atthis stage of the present example the packet ACK is sent to anotherdevice 105 d, so the process moves to step S 3.8.

At step S 3.8, the acknowledgement packet ACK is received at theselected device 105 a, whereupon steps S 3.3-S 3.7.3 are carried out. Atstep S 3.3, acknowledgement program 233 firstly determines the type ofpacket that has been received (as described above). This packet is anacknowledgement type packet ACK, so the acknowledgement program 233jumps straight to step S 3.7.1.

At step S 3.7.1, the acknowledgement program 233 selects a next hopdevice (here either 105 d or 103) to send the acknowledgement packet ACKto. In this case one of the next hops is the intended destination of thepacket, i.e. the base station 103. Having established that the receivedpacket is an acknowledgement packet ACK originating from another device105 d, at step S 3.7.2, the acknowledgement program 233 adds anidentifier, representative of the device 105 a to the route part 515 ofthe acknowledgement packet ACK. FIG. 5 c shows the acknowledgementpacket ACK having passed through device 105 a; it now includes anidentifier representative of this device 105 a in the route part 515.

Next, at step S 3.7.3, the acknowledgement packet ACK is sent to thenext hop device selected at S 3.7.1.

At this point in the sequence, the type of node 101 selected at step S3.7.1 is a base station 103, so logic step S 3.7.4 progresses to step S3.9.1, whereupon the decoding program 213 determines that the receivedpacket is an acknowledgement type packet ACK (as described at step S3.3). At step S 3.9.2 the decoding program 213 retrieves the route part515 and the identifier 511 representative of the originating device 105d from the packet ACK. At step S 3.10, the retrieved route part 515 isstored as a valid route to the originating device 105 d in a routingstore 241, e.g. in the memory unit 203.

For example, for device 105 d, the routing store 241 will read:

Destination node 105d Route 105a, 105d

The example given above only includes 2 devices 105 a, 105 d; it will beappreciated that in a wireless network there may be many more devices,so that the route part 515 of the acknowledgment packet ACK may be farlonger than that shown in FIG. 5 c.

FIGS. 3 a and 3 b thus show a method for establishing a route to devicesin the wireless network 100. As the route part 515 is generateddynamically, in response to advertisement packets AD that are generatedperiodically, and as the route part 515 only comprises identifiersrepresentative of devices 105 that are active in the network 100, theroutes stored by the base station 103 are likely to be valid.

The routing of a packet P1 from the fixed network 110 will now bedescribed with reference to FIGS. 6 a and 6 b, which collectivelyprovide a flow diagram showing operation of the base station 103 anddevices 105 when routing data packets.

At step S 6.1 a data packet P1 is received at the base station 103 fromthe fixed network 110, whereupon it is passed to the decoding program213. The decoding program 213 determines that the received packet is adata packet P1 destined for one of the wireless devices (as described atstep S 3.3: the packet is a “Downstream data” type packet), at step S6.2, whereupon the data packet P1 is passed to the routing program 215.

At step S 6.3, the routing program 215 retrieves a destination addressof the data packet P1 from the header thereof, as is known in the art,and at step S 6.4 accesses the routing store 241 to retrieve a route tothe device corresponding to the retrieved destination address (theretrieved route is the route part 515 that was stored in the routingstore 241 at step S 3.10).

At step S 6.5, the routing program 215 replaces the destination addresspart of the header with the retrieved route 515, adds a packet typeidentifier 500 representative of a downstream packet type, and routesthe data packet P1 to a first device in the retrieved route 515. Forexample, if a packet, destined for device 105 d, were to be received atthe base station 103, and if the routing store 241 contained a routeentry of:

[105 a, 105 d]

for device 105 d, the routing program 215 would add route 105 a, 105 dto the data packet P1, and send the data packet P1 to device 105 a.

At step S 6.6, the data packet P1 is received at device 105 a, whereuponit is analysed for packet type, as described above with reference toStep S 3.3. Upon examination of the packet type identifier 500, thepacket type is determined to be “downstream”, whereupon the packet ispassed to the forwarding program 235, which, at step S 6.7, reads theheader in order to determine which device to send the data packet P1 to.

Firstly, at step S 6.8, the forwarding program 235 determines whetherthis is the last device in the route. In this case, it is not, anddevice 105 d is determined to be the next device in the route. Thus atstep S 6.9, the forwarding program 235 sends the data packet P1 todevice 105 d (of course in this example there is only one device 105 dattached downstream of device 105 a, so the packet could be routed todevice 105 d without needing to review the header).

Steps S 6.6-S 6.8 are then repeated, for device 105 d. Upon passingthrough step S 6.8, the forwarding program 235 determines that device105 d is the last device in the route. Thus the data packet P1 ispassed, at step S 6.10, onto whichever application program it isdestined for, as is well known in the art.

As stated above, one of the advantages of embodiments of the inventionis that identification of routes within the wireless network isself-organising. This can be seen from the following example, whichdescribes route identification when one of the wireless devices 105becomes inactive.

FIG. 7 shows the wireless network of FIGS. 4 a and 4 b, where one of thewireless devices 105 a has become inactive. This can happen when, forexample, a user has turned the device 105 a off, or when the user movesout of range of any of the devices connected to the base station 103.

As described with reference to FIG. 3, the base station 103 periodicallyissues advertisement packets AD. As device 105 a is no longer active,the advertisement packets AD can only reach device 105 d via device 105c. Thus weights in the routing table, maintained on each of the devices105, and detailing all available next hops to the base station 103,would be modified (step S 3.4) to favour device 105 c (e.g. if a nodebecomes inactive, then in the first instance the weight previouslyassociated with that node may be redistributed to the other neighbours.In the present example, a weight of 0.0 is assigned to device 105 a anda weight of 1.0 is assigned to device 105 c, as shown in FIG. 7)

As a result, the acknowledgement packets ACK, issued as described atsteps S 3.6-S 3.10, will follow route path 105 d, 105 c, and 105 b toreach the base station 103, so that the entry in the routing store 241will read:

Destination node 105d Route 105b, 105c, 105d

Thus because

a) the base station 103 sends out advertisement packets AD periodically,and

b) establishing a route between a device 105 and the base station 103 isdependent on routing tables maintained on the device, which isessentially a measure of the ability of neighbouring devices to forwardthe advertisement packets AD to that device 105 (as given by equations(1)-(3)),

if any of the neighbouring devices become inactive, the routing tablewill adapt the weights in accordance with equations (1)-(3), and willthereby automatically identify whichever neighbour is most suitable fortransporting advertisement packets ACK towards the base station 103.

Frequency of Generating Advertisement Packets

The embodiment described above assumes that the interval betweenbroadcast of advertisement packets AD is fixed. However, in practice,the rate at which advertisement packets AD are required to be generatedis dependent on the nature of the wireless environment: if theenvironment is relatively static—e.g. devices remain active and in thesame place for some time—the routing tables on devices will becorrespondingly static, which means that the base station 103 couldissue advertisement packets AD relatively infrequently. Alternatively,if the wireless environment is dynamic—e.g. devices rapidly changestatus from active to inactive (and vice-versa) and users are in rangefor a short period of time—the routing tables will need to be updatedrelatively frequently, to enable that the base station 103 to gathervalid routes.

Other embodiments of the invention thus adapt the temporal interval inaccordance with the rate of change of the wireless network, or themobility of devices. The embodiments include a mechanism for determiningthe changes in the wireless environment, for quantifying those changes,and for modifying the temporal interval in accordance therewith.

Specifically, in addition to the programs 231, 233, 235 loaded and runon the devices 105 as described above, each device has a logging program237, which, for each neighbouring device, records the number of timesthe device has failed to contact the neighbouring device (when a sourcenode 101 tries to send data to a destination node, if data is notreceived successfully at the destination node, the source node receivesa packet indicating failure to deliver the data to the destinationnode). Referring again to FIG. 4 a, device 105 d maintains a log of thenumber of times it has failed to connect to devices 105 a and 105 crespectively. The log can be stored in the memory store 223 of thedevice 105 d.

This log is reset each time a fresh advertisement packet AD is receivedat the device 105 d, so that the log represents a measure of theactiveness (of neighbouring) devices in periods between successiveadvertisement packets AD.

This information is conveyed to the base station 103 by means of theacknowledgement packets ACK: the acknowledgement packet ACK generated atstep S 3.6 includes an additional field, detailing number of failures517, as shown in FIG. 8.

The base station 103 does not need to know which neighbouring device(s)has/have become inactive—it simply needs to know that there is a changeto the wireless network 100, namely that some of the devices 105 are nolonger active.

When acknowledgement packets ACK are received at the base station 103(steps S 3.9, S 3.10), the base station 103 performs the followingsteps: Referring to FIG. 9, at step S 9.1, the decoding program 213collects the number of failures 517 from all incoming acknowledgmentpackets ACK, and adds up the number of packets that reported non-zerofailures. At step S 9.2 the decoding program 213 calculates an averagenumber of failures, by dividing the total number of failures by thenumber of packets that reported non-zero failures. At step S 9.3, thedecoding program 213 modifies the temporal interval by inputting theaverage number of failures into a frequency function 901.

In one embodiment, the frequency function 901 may be a sigmoid function,which smoothly varies the temporal interval based on the current numberof failures. This function 901 is relatively insensitive to a smallnumber of failures but decreases the temporal interval rapidly as thenumber of failures begins to grow, as shown in FIG. 10 (in FIG. 10 thetemporal interval is expressed as frequency):

$\begin{matrix}{\frac{1}{Interval} = \frac{Max}{1 + {\mathbb{e}}^{- {k{({x - l})}}}}} & {{Equation}\mspace{14mu}(4)}\end{matrix}$

x represents the average number of failures reported to a base station103,

l is a normalising constant,

Max is the minimum temporal interval, and

k is a constant that controls the gradient. A small value of k yields asmoothly varying function, and as k increases the equation approximatesa step function.

Additional Details

Devices 105 can include very simple devices that may just be shipped atvery low cost and, e.g. just allow a few SMS messages to be sent. Forexample these devices may not want anything routing to them but may justrespond to some advert or automatically register with a supplier tostart the guarantee period on a consumer item etc. Thus not every devicewould need to be have full two-way communication capability and wouldnot need to generate acknowledgement packets ACK to inform the basestation of a valid route. This has the advantage of reducing theoverhead on the communication channel and base stations.

When a device changes status, from inactive to active, (e.g. because theuser of that device has changed the configuration of the device) thiscauses the acknowledgement and forwarding programs 233, 235 to beactivated, and the device starts generating acknowledgement packets ACKin response to the advertising packets AD. The acknowledgement packetsACK propagate through the network 100 as described above with referenceto FIG. 3, and the base station 103 stores the route to that device inthe routing store 241. Data can then be routed to that device.

In addition, whereas the aforedescribed embodiment details the routingof AD, ACK, and downstream packets, it should also be understood thatthe embodiment of the invention also provides for the routing ofupstream packets, again using the routing weights contained within therouting tables. The routing of upstream packets is substantially similarto that of downstream packets as already described, albeit in theopposite direction.

As will be understood by those skilled in the art, the inventiondescribed above may be embodied in one or more computer programs. Theseprograms can be contained on various transmission and/or storage mediumssuch as a floppy disc, CD-ROM, or other optically readable medium, ormagnetic tape so that the programs can be loaded onto one or moregeneral purpose computers or could be downloaded over a computer networkusing a suitable transmission medium.

The programs 211, 213, 215, 231, 233, 235, 237 of the present inventionare conveniently written using the C programming language, but it is tobe understood that this is inessential to the invention.

1. A method of identifying route information for a route in a wirelessnetwork between a base station and a destination wireless device, theroute information comprising a sequence of wireless devices from thedestination wireless device to the base station, the method comprising:(i) from the base station, sending an advertisement signal into thewireless network; (ii) in response to receipt at the destinationwireless device of the advertisement signal, generating anacknowledgement signal at the destination wireless device, theacknowledgement signal including an identifier representative of thedestination wireless device; (iii) transmitting the acknowledgementsignal sequentially via each of the wireless devices of the sequence tothe base station; (iv) at each of the wireless devices of the sequence,modifying the acknowledgement signal received from the precedingwireless device by adding to the acknowledgement signal an identifierrepresentative of the identity of the respective wireless device, andtransmitting the modified signal, so that as the signal progresses alongthe sequence of wireless devices from the destination wireless device tothe base station it acquires a sequence of identifiers representative ofthe identifiers of the wireless devices of the sequence and so that theacknowledgement signal necessarily grows in size as the acknowledgementsignal progresses along the sequence of wireless devices from thedestination wireless device to the base station via acquisition of thesequence of identifiers, the sequence of identifiers representing theroute information between the base station and the destination wirelessdevice; and (v) at the base station, receiving the modifiedacknowledgement signal transmitted from the last wireless device of thesequence, and storing the route information so obtained for later use inrouting a signal from the base station to the destination wirelessdevice utilizing the stored route information.
 2. The method accordingto claim 1, wherein each wireless device includes a routing tablecomprising stored identifiers for neighboring wireless devices togetherwith preference values for use in selecting between the neighboringwireless devices whose identifiers are stored, the wireless device usingthe stored preference values in selecting a neighboring wireless devicevia which the acknowledgement signal will be sent to the base station.3. A method of routing data from a base station of a wireless network toa destination wireless device within that network, the methodcomprising: (a) from the base station, sending an advertisement signalinto the wireless network; (b) in response to receipt at the destinationwireless device of the advertisement signal, generating anacknowledgement signal at the destination wireless device, theacknowledgement signal including an identifier representative of thedestination wireless device; (c) transmitting the acknowledgement signalsequentially via each of the wireless devices of a sequence of wirelessdevices forming route information for a route from the destinationwireless device to the base station; (d) at each of the wireless devicesof the sequence, modifying the acknowledgement signal received from thepreceding wireless device by adding to the acknowledgement signal anidentifier representative of the identity of the respective wirelessdevice, and transmitting the modified signal, so that as the signalprogresses along the sequence of wireless devices from the destinationwireless device to the base station it acquires a sequence ofidentifiers representative of the identifiers of the wireless devices ofthe sequence and so that the acknowledgement signal necessarily grows insize as the acknowledgement signal progresses along the sequence ofwireless devices from the destination wireless device to the basestation via acquisition of the sequence of identifiers, the sequence ofidentifiers representing route information for a route between the basestation and the destination wireless device; (e) at the base station,receiving the modified acknowledgement signal transmitted from the lastwireless device of the sequence, and storing the route information soobtained; (f) identifying for which of the wireless devices in thewireless network the data are destined; (g) retrieving storedidentifiers constituting the route information between the base stationand the destination wireless device; (h) adding the stored identifiersto the data; and (i) sending the data to the wireless devicecorresponding to the identifier representative of the destinationwireless device.
 4. A wireless network comprising: a base station; and aplurality of wireless devices; and a destination wireless device;wherein the base station sends an advertisement signal into the wirelessnetwork; the destination wireless devices receives the advertisementsignal and generates an acknowledgement signal in response to receipt ofthe advertisement signal, wherein the acknowledgement signal includingan identifier representative of its identity, and transmits theacknowledgement signal to the base station via each of the plurality ofwireless devices in a sequence; one of the plurality of wireless devicesreceives the acknowledgement signal, modifies the acknowledgement signalby adding an identifier representative of its identity, and transmitsthe modified acknowledgement signal to the base station via the sequenceof wireless devices so that the acknowledgement signal necessarily growsin size as the acknowledgement signal progresses via the sequence ofwireless devices from the destination wireless device to the basestation; and the base station receives the modified acknowledgementsignal transmitted from the sequence of wireless devices, stores themodified acknowledgement signal which includes a sequence of identifiersrepresentative of the identifiers of the destination wireless device andthe sequence of wireless devices, the sequence of identifiersrepresenting route information between the base station and thedestination wireless device, and routes a signal from the base stationto the destination wireless device based on the stored modifiedacknowledgement signal which includes the sequence of identifiers.
 5. Amethod of identifying a destination wireless device, for use inidentifying route information for a route between a base station and thedestination wireless device, wherein the destination wireless device isin range of at least one other wireless device located within a wirelessnetwork, the wireless network comprising a base station operable tocommunicate with the wireless devices in the wireless network, themethod comprising the steps of: from the base station, sending anadvertisement signal into the wireless network; receiving at thedestination wireless device an advertisement signal; generating anacknowledgement signal in response to receipt of the advertisementsignal at the destination wireless device, the acknowledgement signalincluding an identifier representative of the destination wirelessdevice; sending the acknowledgement signal from the destination wirelessdevice to the base station via the at least one other wireless device;wherein each of the at least one other wireless device modifies theacknowledgement signal by adding an identifier representative of itsidentity before sending the acknowledgement signal on so that theacknowledgement signal necessarily grows in size as the acknowledgementsignal progresses via the at least one other wireless device from thedestination wireless device to the base station and so that the basestation can later route a signal from the base station to thedestination wireless device based on the identifiers in the modifiedacknowledgement signal.
 6. The method according to claim 5, furthercomprising the step of selecting, in accordance with a routing table, aneighboring wireless device via which the acknowledgement signal will besent to the base station, which routing table comprises storedidentifiers for neighboring wireless devices together with preferencevalues to be used in selecting a neighboring wireless device via whichdata are to be sent to the base station.
 7. The method according toclaim 6, in which a preference value corresponding to a neighboringwireless device is modified, at least in part, in dependence on timetaken for signals from the base station to reach the wireless device viathat neighboring wireless device.
 8. A wireless device including: meansto receive wireless signals; generating means arranged to generatewireless signals; means to store an identifier representative of itsidentity; and means to discriminate between: an advertisement signalgenerated by a base station to identify route information for a routebetween a base station and a destination wireless device; anacknowledgement signal generated by the destination wireless device inresponse to their receipt of an advertisement signal from the basestation; upstream data signals being sent from the base station; anddownstream data signals being sent from the destination wireless devicesto the base station; wherein if the wireless device is the destinationwireless device, the wireless device is configured to respond to receiptof an advertisement signal by generating an acknowledgement signal whichincludes an identifier representative of its identity, and transmittingthe acknowledgement signal back to the base station; and wherein if thewireless device is not the destination wireless device, the wirelessdevice is configured to respond to receipt of: an advertisement signalby re-transmitting the advertisement signal; and an acknowledgementsignal by re-transmitting the acknowledgement signal to the base stationwith the addition of an identifier representative of its identity sothat the acknowledgement signal necessarily grows in size as theacknowledgement signal is transmitted from the destination wirelessdevice to the base station and so that the base station later routes asignal to the destination wireless device using the identifiers in theacknowledgement signal; a downstream data signal by re-transmitting thedownstream data signal; and an upstream data signal by re-transmittingthe upstream data signal.
 9. The wireless device according to claim 8,further including a routing table, which routing table comprisespreference values for sending signals and data via neighboring wirelessdevices.
 10. The wireless device according to claim 9, further includingmeans arranged to modify a preference value corresponding to aneighboring wireless device, which modification occurs, at least inpart, in dependence on time taken for signals from a base station toreach the wireless device via that neighboring wireless device.
 11. Thewireless device according to claim 10, wherein the means to modify isarranged to select a wireless device in accordance with the preferencevalues, and to send the acknowledgement signal to the base station viathe selected wireless device.
 12. A wireless network comprising: a basestation; and a plurality of wireless devices; wherein at least one ofthe plurality of wireless devices includes: means to receive wirelesssignals; generating means arranged to generate wireless signals; meansto store an identifier representative of its identity; and means todiscriminate between: an advertisement signal generated by a basestation to identify route information for a route between a base stationand a destination wireless device; an acknowledgement signal generatedby the destination wireless device in response to receipt of anadvertisement signal from the base station; upstream data signals beingsent from the base station; and downstream data signals being sent fromthe destination wireless device to the base station; wherein if thewireless device is the destination wireless device, the wireless deviceis configured to respond to receipt of an advertisement signal bygenerating an acknowledgement signal which includes an identifierrepresentative of its identity, and transmitting the acknowledgementsignal; and wherein if the wireless device is not destination wirelessdevice, the wireless device is configured to respond to receipt of: anadvertisement signal by re-transmitting the advertisement signal; anacknowledgement signal by re-transmitting the received acknowledgementsignal with the addition of its identifier so that the acknowledgementsignal necessarily grows in size as the acknowledgement signal istransmitted from the destination wireless device to the base station andso that the base station later routes a signal to the destinationwireless device using the identifiers in acknowledgement signal; adownstream data signal by re-transmitting the downstream data signal; anupstream data signal by re-transmitting the upstream data signal.
 13. Amethod of operating a wireless network with a base station and aplurality of wireless outstations including a first wireless outstationand second wireless outstation, the method comprising: transmitting anadvertisement signal from the base station; and in response to receptionof the advertisement signal by the first wireless outstation,transmitting an acknowledgement signal from the first wirelessoutstation to the base station, which acknowledgement signal includes anidentifier representative of the identity of that first wirelessoutstation; adding to the acknowledgement signal originating from thefirst wireless outstation an identifier representative of the identityof the second and any subsequent wireless outstations which relay theacknowledgement signal originating from the first outstation to the basestation so that the acknowledgement signal necessarily grows in size asthe acknowledgement signal is relayed by the second and any subsequentwireless outstations from the first wireless outstation to the basestation via the added identifier representative of the second and anysubsequent wireless outstation; and upon receipt of the acknowledgementsignal at the base station, storing at the base station the identifiersrepresentative of the identity of each wireless outstation through whichthe acknowledgement signal was relayed; and routing signals from thebase station to the first wireless outstation based on the storedidentifiers.
 14. The wireless network according to claim 4, wherein theone of the plurality of the wireless devices sends the modifiedacknowledgement signal to the base station through a further wirelessdevice which further modifies the modified acknowledgement signal. 15.The method according to claim 5, wherein the at least other wirelessdevice sends the modified acknowledgement signal to the base stationthrough a further wireless device which further modifies the modifiedacknowledgement signal.